Clustering and coranking of multi-source location data

ABSTRACT

A method, computer program product, and apparatus for determining improved data objects are provided. An example method receives a request for a renderable data object from a location source device associated with a user profile including instant location data. The method queries an explicit locations database and an implicit locations database and coranks this multisource locations data. The method compares the coranked locations with one or more object redemption locations of each renderable data object. The method determines a proximity score for each renderable data object and ranks each renderable data object based upon proximity score. The method then identifies a proximate data object having a minimum proximity score and transmits the proximate data object to the location source device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.16/192,197, filed Nov. 15, 2018, which application claims the benefit ofU.S. Provisional Application No. 62/587,881, filed Nov. 17, 2017, whichapplications are incorporated by reference herein in their entirety.

TECHNOLOGICAL FIELD

Various embodiments of the present invention relate generally tomodeling, e.g., using machine learning models, to determine improvedrenderable data objects using clustering and co-ranking of multi-sourcelocation data.

BACKGROUND

Various conventional systems attempt to model and predict deviceinteractions using location data. Applicant has identified a number ofdeficiencies and problems associated with such conventional systems andassociated computing devices. Through applied effort, ingenuity, andinnovation, solutions for improving the modeling of renderable dataobjects have been realized and are described herein.

BRIEF SUMMARY

A method for determining improved data objects is provided. The methodmay include receiving a request for a renderable data object from alocation source device associated with a user profile and receivinginstant location data associated with the location source device. Themethod may include querying an explicit locations database associatedwith the user profile to identify explicit locations data and generatingan explicit locations data set based on the explicit locations data aswell as querying an implicit locations database associated with the userprofile to identify implicit locations data and generating an implicitlocations data set based on the implicit locations data and the instantlocation data of the location source device. The method may furtherinclude coranking the explicit locations data set and the implicitlocations data set to generate a coranked locations data set comprisingone or more coranked locations and querying a renderable objectsdatabase to generate a set of one or more renderable data objects basedupon the one or more coranked locations of the coranked locations dataset where each of the one or more renderable data objects is associatedwith one or more object redemption locations. The method may includecomparing the one or more coranked locations of the coranked locationsdata set with each of the one or more object redemption locations ofeach of the one or more renderable data objects to determine a proximityscore for each of the renderable data objects with respect to each ofthe one or more coranked locations and ranking each of the one or morerenderable data objects based upon proximity score to generate aproximate object set. The method may further include identifying aproximate data object, where the proximate data object of the proximateobject set comprises the renderable data object having a minimumproximity score and transmitting the proximate data object to thelocation source device.

In some embodiments, the coranking of the explicit locations data setand the implicit locations data set may also including comparing theexplicit locations data set with the implicit locations data set todetermine one or more verified locations in an instance in which theexplicit locations data and the implicit locations data satisfy aproximity threshold. The method may further include generating thecoranked locations data set by first ranking the one or more verifiedlocations, second ranking the implicit locations data that does notsatisfy the proximity threshold, and third ranking the explicitlocations data that does not satisfy the proximity threshold.

In some cases, the explicit locations data of the explicit locationsdatabase may include location data corresponding to one or more of thebilling address, the shipping address, and/or the social media of theuser profile associated with the location source device.

In some other cases, upon identifying a proximate data object, themethod may further include supplying the proximate data object to apredictive model in order to improve subsequent determinations ofimproved data objects.

In other embodiments, the implicit locations database may includeimplicit locations data gathered via one or more previous requests for arenderable data object by the location source device.

In some embodiments, the implicit locations data and the explicitlocations data are grouped via a clustering method. In such anembodiment, the implicit locations data may be further grouped via amodified k-means clustering method, where the location data associatedwith requests for a renderable data object by the location source devicehaving a lower time stamp are ranked higher relative other implicitlocations data.

A computer program product including at least one non-transitorycomputer-readable storage medium having computer-executable program codeinstructions stored therein is provided. The computer-executable programcode instructions may include program code instructions for receiving arequest for a renderable data object from a location source deviceassociated with a user profile and receiving instant location dataassociated with the location source device. The computer-executableprogram code instructions may include program code instructions forquerying an explicit locations database associated with the user profileto identify explicit locations data and generating an explicit locationsdata set based on the explicit locations data as well as querying animplicit locations database associated with the user profile to identifyimplicit locations data and generating an implicit locations data setbased on the implicit locations data and the instant location data ofthe location source device. The computer-executable program codeinstructions may include program code instructions for further corankingthe explicit locations data set and the implicit locations data set togenerate a coranked locations data set comprising one or more corankedlocations and querying a renderable objects database to generate a setof one or more renderable data objects based upon the one or morecoranked locations of the coranked locations data set where each of theone or more renderable data objects is associated with one or moreobject redemption locations The computer-executable program codeinstructions may include program code instructions for comparing the oneor more coranked locations of the coranked locations data set with eachof the one or more object redemption locations of each of the one ormore renderable data objects to determine a proximity score for each ofthe renderable data objects with respect to each of the one or morecoranked locations and ranking each of the one or more renderable dataobjects based upon proximity score to generate a proximate object set.The computer-executable program code instructions may include furtherprogram code instructions for identifying a proximate data object, wherethe proximate data object of the proximate object set comprises therenderable data object having a minimum proximity score and transmittingthe proximate data object to the location source device.

In some embodiments, the coranking of the explicit locations data setand the implicit locations data set may also including comparing theexplicit locations data set with the implicit locations data set todetermine one or more verified locations in an instance in which theexplicit locations data and the implicit locations data satisfy aproximity threshold. The computer-executable program code instructionsmay include further program code instructions for generating thecoranked locations data set by first ranking the one or more verifiedlocations, second ranking the implicit locations data that does notsatisfy the proximity threshold, and third ranking the explicitlocations data that does not satisfy the proximity threshold.

In some cases, the explicit locations data of the explicit locationsdatabase may include location data corresponding to one or more of thebilling address, the shipping address, and/or the social media of theuser profile associated with the location source device.

In some other cases, upon identifying a proximate data object, thecomputer-executable program code instructions may include furtherprogram code instructions for supplying the proximate data object to apredictive model in order to improve subsequent determinations ofimproved data objects.

In other embodiments, the implicit locations database may includeimplicit locations data gathered via one or more previous requests for arenderable data object by the location source device.

In some embodiments, the implicit locations data and the explicitlocations data are grouped via a clustering method. In such anembodiment, the implicit locations data may be further grouped via amodified k-means clustering method, where the location data associatedwith requests for a renderable data object by the location source devicehaving a lower time stamp are ranked higher relative other implicitlocations data.

An apparatus comprising at least one processor and at least one memoryincluding computer program code, the at least one memory is provided.The computer program code may be configured to, with the processor,cause the apparatus to receive a request for a renderable data objectfrom a location source device associated with a user profile and receiveinstant location data associated with the location source device. Thecomputer program code may be configured to, with the processor, causethe apparatus to query an explicit locations database associated withthe user profile to identify explicit locations data and generate anexplicit locations data set based on the explicit locations data as wellas query an implicit locations database associated with the user profileto identify implicit locations data and generate an implicit locationsdata set based on the implicit locations data and the instant locationdata of the location source device. The computer program code may beconfigured to, with the processor, cause the apparatus to corank theexplicit locations data set and the implicit locations data set togenerate a coranked locations data set including one or more corankedlocations and query a renderable objects database to generate a set ofone or more renderable data objects based upon the one or more corankedlocations of the coranked locations data set where each of the one ormore renderable data objects is associated with one or more objectredemption locations. The computer program code may be configured to,with the processor, cause the apparatus to compare the one or morecoranked locations of the coranked locations data set with each of theone or more object redemption locations of each of the one or morerenderable data objects to determine a proximity score for each of therenderable data objects with respect to each of the one or more corankedlocations and rank each of the one or more renderable data objects basedupon proximity score to generate a proximate object set. The computerprogram code may further be configured to, with the processor, cause theapparatus to identify a proximate data object, where the proximate dataobject of the proximate object set comprises the renderable data objecthaving a minimum proximity score and transmit the proximate data objectto the location source device.

In some embodiments, the coranking of the explicit locations data setand the implicit locations data set may also including comparing theexplicit locations data set with the implicit locations data set todetermine one or more verified locations in an instance in which theexplicit locations data and the implicit locations data satisfy aproximity threshold. The computer program code may further be configuredto, with the processor, cause the apparatus to generate the corankedlocations data set by first ranking the one or more verified locations,second ranking the implicit locations data that does not satisfy theproximity threshold, and third ranking the explicit locations data thatdoes not satisfy the proximity threshold.

In some cases, the explicit locations data of the explicit locationsdatabase may include location data corresponding to one or more of thebilling address, the shipping address, and/or the social media of theuser profile associated with the location source device.

In some other cases, upon identifying a proximate data object, thecomputer program code may further be configured to, with the processor,cause the apparatus to supply the proximate data object to a predictivemodel in order to improve subsequent determinations of improved dataobjects.

In other embodiments, the implicit locations database may includeimplicit locations data gathered via one or more previous requests for arenderable data object by the location source device.

In some embodiments, the implicit locations data and the explicitlocations data are grouped via a clustering method. In such anembodiment, the implicit locations data may be further grouped via amodified k-means clustering method, where the location data associatedwith requests for a renderable data object by the location source devicehaving a lower time stamp are ranked higher relative other implicitlocations data.

BRIEF DESCRIPTION OF THE DRAWINGS

Having thus described certain example embodiments of the invention ingeneral terms, reference will now be made to the accompanying drawings,which are not necessarily drawn to scale, and wherein:

FIG. 1 shows an example multi-source location system within whichembodiments of the present invention may operate;

FIG. 2 shows a block diagram showing an example identification serverfor determining improved renderable data objects, using special-purposecircuitry in accordance with some exemplary embodiments of the presentinvention;

FIG. 3 shows a flowchart illustrating a method for determining improvedrenderable data objects by identifying a proximate data object, such asby the identification server of FIGS. 1-2, in accordance with an exampleembodiment of the present invention;

FIG. 4 shows a flowchart illustrating coranking explicit locations dataand implicit locations data, such as by the identification server ofFIGS. 1-2, in accordance with an example embodiment of the presentinvention;

FIG. 5 shows a flowchart illustrating clustering of implicit locationsdata, such as by the identification server of FIGS. 1-2, in accordancewith an example embodiment of the present invention;

FIG. 6 shows a flowchart illustrating identifying a proximate dataobject, such as by the identification server of FIGS. 1-2, in accordancewith an example embodiment of the present invention;

FIG. 7 shows a flowchart illustrating determining improved renderabledata objects via email, such as by the identification server of FIGS.1-2, in accordance with an example embodiment of the present invention;and

FIG. 8 shows a flowchart illustrating determining improved renderabledata objects via a web-based service, such as by the identificationserver of FIGS. 1-2, in accordance with an example embodiment of thepresent invention.

DETAILED DESCRIPTION

Some embodiments of the present invention will now be described morefully hereinafter with reference to the accompanying drawings, in whichsome, but not all, embodiments of the invention are shown. Indeed,various embodiments of the invention may be embodied in many differentforms and should not be construed as limited to the embodiments setforth herein; rather, these embodiments are provided so that thisdisclosure will satisfy applicable legal requirements. Like referencenumerals refer to like elements throughout. As used herein, thedescription may refer to an “apparatus” or “identification server”performing and/or encompassing one or more of the elements describedhereafter. However, elements and features of the apparatus oridentification server described herein may be equally applicable to theclaimed method and computer program product. Thus, use of any such termsshould not be taken to limit the spirit and scope of embodiments of thepresent invention.

As described herein, system components can be communicatively coupled toone or more of each other. Though the components are described as beingseparate or distinct, two or more of the components may be combined intoa single process or routine. The component functional descriptionsprovided herein including separation of responsibility for distinctfunctions by way of example. Other groupings or other divisions offunctional responsibilities can be made as necessary or in accordancewith design preferences. Similarly, various databases and/or the likemay described herein as distinct. However, the present disclosurecontemplates that these databases may equally be separate data setshosted in a single database.

Definition of Terms

Certain terms used in connection with exemplary embodiments are definedbelow.

As used herein, the terms “data,” “content,” “information,” and similarterms may be used interchangeably to refer to data capable of beingtransmitted, received, and/or stored in accordance with embodiments ofthe present invention. Thus, use of any such terms should not be takento limit the spirit and scope of embodiments of the present invention.Further, where a computing device is described herein to receive datafrom another computing device, it will be appreciated that the data maybe received directly from the another computing device, or may bereceived indirectly via one or more intermediary computing devices, suchas, for example, one or more identification servers, relays, routers,network access points, base stations, hosts, and/or the like, sometimesreferred to herein as a “network.” Similarly, where a computing deviceis described herein to send data to another computing device, it will beappreciated that the data may be sent directly to the another computingdevice or may be sent indirectly via one or more intermediary computingdevices, such as, for example, by one or more servers, relays, routers,network access points, base stations, hosts, and/or the like.

The term “identification server” may refer to a computing service orsystem that is accessible via one or more computing devices, mobiledevices, location source devices, object authorization devices, or thelike and that is operable to receive location data provided frommultiple sources in order to determine a proximate data object byperforming clustering, co-ranking, and other related methods (e.g.,procedures, algorithm, or the like) on the received location data. Insome example embodiments, the identification server may take the form ofa central server disposed in communication with one or more additionalservers and modules running software applications and having access toone or more databases storing location data, renderable data objects,application related data, and/or the like. In some example embodiments,the identification server may receive location data from one or morecomputing devices (e.g., via a request for a renderable data object by amobile device of a user) and may query one or more databases incommunication with the identification server to identify location data(e.g., an explicit locations database and/or an implicit locationsdatabase defined herein). The identification server may perform variousmethods and comparisons of the location data, renderable data objects,and/or object redemption locations associated with the renderable dataobjects, defined hereafter, in order to identify a proximate data objectfor transmission to the computing device (e.g., the mobile device of theuser). Said differently, the identification server may be configured toreceive a request for a renderable data object by a location sourcedevice (e.g., a mobile device of a user) in communication with theidentification server via a network. The identification server may, insome embodiments, query an explicit locations database, an implicitlocations database, and a renderable objects database. Theidentification server may corank and/or cluster the location datareceived and compare the location data with one or more renderable dataobjects in order to determine a proximate data object corresponding tothe renderable data object the identification server determines to bemost relevant to the user. The proximate data object may be transmittedby the identification server to the location source device (e.g., themobile device of the user).

As used herein, the term “renderable data object” may be used to refer,without limitation, to one or more data sets including instructions forrendering or otherwise presenting information to a user. In someembodiments, the one or more data sets may include terms of acontractual offer, promotional value, or the like for presentation tothe user via an impression, defined hereafter, and may reflect an actionthat can be elected by a user to cause the performance of an action atone or more object redemption locations defined by the terms containedwithin the one or more data sets of the renderable data object. Arenderable data object may also include a set of parameters associatedwith the action and/or an object authorization device, defined below,including but not limited to characteristics of the renderable dataobject, one or more requirements associated with the action, timingaspects associated with the renderable data object, a proximity score,such as a proximity score determined by the identification server, andan indication of an object redemption location.

As used herein, the term “user profile” may refer to a collection ofpreferences, settings, configurations, data, and information associatedwith a specific user. A profile refers therefore to the explicit digitalrepresentation of a user's identity and other data or informationassociated with the user. A user profile configured in accordance withthe present invention is accessible by one or more of the softwareapplications that are supported by the identification server and, thus,may include application-specific preferences, settings, configurations,data, and information. In some embodiments, a user profile can be usedto store a description of characteristics of the user and/or of theuser's location source device (e.g., mobile device), as well ascredentials and preferences of the user. In still another embodiment, auser profile may include implicit locations data and/or explicitlocations data reported by one or more location source devices that areassociated with the user profile.

As used herein, the term “location source device” may refer to computerhardware and/or software that is configured to access a service madeavailable by the identification server and, among various otherfunctions, is configured to, directly or indirectly, provide locationdata to the identification server and/or parse and interpret renderabledata objects received from the identification server. Example locationsource devices may include a mobile device, a smartphone, a tabletcomputer, a laptop computer, a wearable device, a user's access badge,and the like. In other embodiments, a location source device may includea “smart device” that is equipped with chip of other electronic devicethat is configured to communicate with the identification server viaBluetooth, NFC, Wi-Fi, 3G, 4G, 5G, RFID protocols, and the like. In oneexample, a location source device may include an object that is equippedwith a Wi-Fi radio that is configured to communicate with a Wi-Fi accesspoint that is disposed in network communication with the identificationserver so as to provide instant location data of the location sourcedevice (e.g., location data indicative of the current location of thelocation source device).

As used herein, the term “impression” may be used, without limitation,to refer to a communication, a display, or other perceived indication,such as an e-mail communication, web-based display, application alert,graphical user interface (“GUI”), other type of electronic interface ordistribution channel and/or the like, for displaying one or morerenderable data objects. For example, a location source device (e.g., amobile device) associated with a user may receive a renderable dataobject from the identification server and may parse and interpret thedata contained therein in order to display the renderable data object tothe user as an impression.

As used herein, the term “object authorization device” may be used torefer, without limitation, to one or more computing devices of aprovider, merchant, business owner, consigner, shopkeeper, tradesperson,vender, operator, entrepreneur, agent, dealer, organization or the likethat is in the business of a providing a good, service, or experience toa user, facilitating the provision of a good, service or experience to auser and/or otherwise operating in the stream of commerce (e.g., via arenderable data object). For example, an object authorization device mayrefer to a device, a system of devices, or a module operable to processor communicate in relation to a payment, such as a point-of-sale (“POS”)machine, a mobile payment processing system, a cellular phone, a laptop,any intermediary device that could communicate with a POS machine, orthe like. An object authorization device may or may not communicate withone or more databases or servers. In some embodiments, such as inresponse to an action by a user presented with a renderable data objectvia an impression on a location source device, the object authorizationdevice may be operable to provide, redeem, and/or authorize redemptionof the terms contained within the one or more data sets of therenderable data object.

As used herein, the term “explicit locations database” refers to astructured data set, table, or repository for storing location dataaccessible by the identification server, where the location data isassociated with various known or fixed locations points (e.g., definedvia latitude and longitude) and/or determined by affirmative action by auser. For example, explicit locations data may include location data(e.g., longitude and latitude coordinates) provided by one or more userprofiles and associated location source devices such as locationcoordinates of billing addresses, shipping addresses, work locations,home locations, and the like. Explicit locations data may furtherinclude location data provided by object authorization devices (e.g.,POS machines, object redemption locations, distribution centerlocations, or the like), location data determined from one or moresearches or aggregation of Internet data, and/or affirmative useractions to provide location data such as by scanning an RFID tag or abarcode label that is affixed to an object having fixed or otherwiseknown location data (e.g., a fixed latitude and longitude).

As used herein, the term “implicit locations database” refers to astructured data set, table, or repository for storing location dataaccessible by the identification server, where the location data isassociated with various locations (e.g., defined via latitude andlongitude) corresponding to or gathered from a location source deviceand associated user profile. Said differently, the implicit locationsdatabase may include implicit locations data that is gathered from oneor more previous requests by a location source device for a renderabledata object (e.g., global positioning system (“GPS”) pings from a mobiledevice) and may include instant location data for the location sourcedevice (e.g., from a pending request for a renderable data object). Insome example embodiments, the implicit locations database may includeimplicit locations data corresponding to latitude and longitude locationdata determined by the location source device (e.g., mobile device ofthe user) and transmitted to the identification server (e.g., via asoftware application of the like) as well as implicit locations datathat may be derived or passively obtained from the location sourcedevice (e.g., NFC, Bluetooth, Wi-Fi, or the like). Said differently, theimplicit locations database may include implicit locations data of aninstant location of the location source device (e.g., mobile device ofuser profile) and/or implicit locations data that is suggestive of alocation (e.g., GPS latitude and longitude) that does not requireaffirmative actions by the user in order to provide the location data(e.g., location data of one or more previous requests for a renderabledata object).

As used herein, the term “renderable objects database” refers to astructured data set, table, or repository for storing renderable objectsdata accessible by the identification server, where the renderableobjects data is associated with various renderable data objects. Thisrenderable objects data may include information related to the timing,location, value, or the like for the renderable data object as definedabove. In some embodiments, the renderable objects database may storeone or more renderable data objects (e.g., able to be redeemed by a userprofile) where each of the one or more renderable data objects isassociated with one or more object redemption locations, defined by acorresponding object authorization device.

As used herein, the term “coranked locations data set” refers to a groupof location data identified from one or more database queries (e.g.,explicit locations database and/or implicit locations database), wherethe group of location data has been filtered, reduced, enhanced, orimproved by comparison of the explicit locations data and implicitlocations data described herein. In this regard, the coranked locationsdata set may represent a subset or modified version of the explicitlocations data set of the explicit locations database and/or of theimplicit locations data set of the implicit locations database. In someembodiments, the coranked locations data set may refer to a particularorder of location data entries where each location data entry isordered, grouped, or ranked based upon a coranking method, algorithm,procedure, or the like. By way of example, the identification server mayquery the explicit locations database and/or the implicit locationsdatabase to identify location data for the user profile and associatedlocation source device including instant location data, explicitlocations data, and/or implicit locations data. The identification severmay corank all or any portion of this location data in order to form acoranked locations data set indicative of the locations most frequent tothe user profile and associated location source device.

As used herein, the term “proximate object set” refers to a group ofrenderable data objects generated from one or more queries, where thegroup of renderable data objects has been filtered, reduced, enhanced,or improved by comparison between one or more object redemptionlocations associated with each renderable data object and each of theone or more coranked locations of the coranked locations data setdefined above. In this regard, the proximate object set may represent asubset or modified version of the renderable data objects of therenderable objects database. In some embodiments, the proximate objectset may refer to a particular order of renderable data objects basedupon a proximity score defined below.

As used herein, the term “proximity score” refers to a definedmathematical difference between location data entries (e.g., a latitudeand a longitude). In particular, the proximity score may refer to themathematical difference between one or more coranked locations of thecoranked locations data set described above and one or more objectredemption locations associated with one or more renderable dataobjects. In some embodiments, the proximity score may refer to a definedmathematical difference between an array of location coordinates (e.g.,array of location data defining a park or building), and locationcoordinates associated with a location source device. In some otherembodiments, the proximity score may refer to a defined mathematicaldifference between the average location data associated with twolocations. By way of example, a location source device may iterativelytransmit instant location data associated with its current positioning(e.g., mobile device traveling along a route) such that the mathematicalrepresentation of the distance between the location source device and anobject redemption location varies. In such an embodiment, the proximityscore may refer to the difference between the average locationcoordinate for the location source device and the location data for theobject redemption location.

As used herein, the term “application program” refers tocomputer-executable application software programmed to or capable ofrunning on a processing unit of a computing device. Additionally, asused herein, the term “circuitry”′ refers to (a) hardware-only circuitimplementations (e.g., implementations in analog circuitry and/ordigital circuitry); (b) combinations of circuits and computer programproduct(s) comprising software and/or firmware instructions stored onone or more computer readable memories that work together to cause anapparatus to perform one or more functions described herein; and (c)circuits, such as, for example, a microprocessor(s) or a portion of amicroprocessor(s), that require software or firmware for operation evenif the software or firmware is not physically present. This definitionof “circuitry” applies to all uses of this term herein, including in anyclaims. As a further example, as used herein, the term ‘circuitry’ alsoincludes an implementation comprising one or more processors and/orportion(s) thereof and accompanying software and/or firmware. As anotherexample, the term ‘circuitry’ as used herein also includes, for example,a baseband integrated circuit or applications processor integratedcircuit for a mobile phone or a similar integrated circuit in a server,a cellular network device, other network device, and/or other computingdevice.

As used herein, the term “computer-readable medium” refers tonon-transitory storage hardware, non-transitory storage device ornon-transitory computer system memory that may be accessed by acontroller, a microcontroller, a computational system or a module of acomputational system to encode thereon computer-executable instructionsor software programs. A non-transitory “computer-readable medium” may beaccessed by a computational system or a module of a computational systemto retrieve and/or execute the computer-executable instructions orsoftware programs encoded on the medium. Exemplary non-transitorycomputer-readable media may include, but are not limited to, one or moretypes of hardware memory, non-transitory tangible media (for example,one or more magnetic storage disks, one or more optical disks, one ormore USB flash drives), computer system memory or random access memory(such as, DRAM, SRAM, EDO RAM), and the like.

Overview

Many particularly advantageous implementations of embodiments of theinvention arise in contexts and situations that involve the transmissionand presentation to a user of a mobile device (e.g., location sourcedevice) of renderable data objects that are in the form of deal offers(e.g., such as offers to purchase goods, services, and/or otherresources at a discounted price). In many such example implementations,these renderable data objects are associated with one or more particulargeographic locations, such as a restaurant, retailer, service provider,or other object redemption location. Similarly, the terms containedwithin the one or more data sets and instructions of the renderable dataobject may require that a user physically travel to an object redemptionlocation in order to redeem the terms of the renderable data object. Oneof the technical and business related challenges in such contextsinvolves the transmission and presentation of renderable data objectsthat are associated with object redemption locations that areinconvenient to a user due to the large distance between the current orfrequent locations of the user and the object redemption location(s).

This technical challenge is often driven by the inability of predictivemodeling (e.g., using machine learning models) to take into account notonly the current location of a user, but the frequent locations of auser. For example, a user may primarily work in Silicon Valley and maymost frequently request renderable data objects at this location, butmay also have a residential address in Oakland. While the user mayrequest renderable data objects while located in Silicon Valley,renderable data objects near Oakland may also be convenient to the user.Traditional models may utilize the current location of the user via aGPS signal from a user's mobile device requesting a renderable dataobject as the basis for suggesting renderable data objects. Saiddifferently, traditional models may only suggest renderable data objectsnear Silicon Valley while renderable data objects near Oakland may bepreferable to the user due to the user being frequently located inOakland.

Another factor that tends to contribute to this issue arises with apredictive model that is unable to receive a current or instant locationof a user. Such models may primarily rely upon a current location orrecent location of a user or user's mobile device (e.g., location sourcedevice) to drive determining a renderable data object for transmissionto the user. However, in some instances, a user's current location maybe unavailable to the model such as in large cities when line of sight(LOS) to GPS satellites is precluded. Consequently, such models areunable to recognize that users possess an inherent willingness to travel(e.g., acceptable geographic area) that is often dependent upon thelocations where the user is most frequently located.

To solve and address these issues, example implementations ofembodiments of the invention corank explicit locations datarepresentative of various known or fixed locations points of a user suchas location coordinates of billing addresses, shipping addresses, worklocations, home locations, and the like, and implicit locations that maybe derived or passively obtained from the location source device (e.g.,mobile device) such as via NFC, Bluetooth, Wi-Fi, GPS or the like. Theexample implementations of the embodiments of the invention compare thecoranked location data and one or more object redemption locations todetermine renderable data objects having one or more object redemptionlocation that are proximate the frequent locations of the user (e.g.,the explicit and implicit locations). In doing so, such exampleimplementations confront and solve at least three technical challenges:(1) reliably detecting the frequent locations of the user, (2)ascertaining the object redemptions locations convenient to the frequentlocations of the user, and (3) modeling the propensity of users ingeneral to travel for a specific renderable data object depending uponthe relative distance of the object redemption location of saidrenderable data object (e.g., determining distance-based conversionrates).

System Architecture

With reference to FIG. 1, an example multi-source location system 100 isillustrated with an identification server 102 communicably connectedwith a location source device 106 and an object authorization device 108via a network 104. The example multi-source location system 100 may alsoinclude a renderable objects database 116, implicit locations database114, and an explicit locations database 112 in communication with theidentification server 102.

The identification server 102 may include circuitry, networkedprocessors, or the like configured to perform some or all of theidentification server-based processes described herein, and may be anysuitable network identification server and/or other type of processingdevice. In some embodiments, the identification server 102 may functionas a “cloud” with respect to the location source device 106. In thatsense, the identification server 102 may include several serversperforming interconnected and/or distributed functions. To avoidunnecessarily overcomplicating the disclosure, the identification server102 is shown and described herein as a single server.

The network 104 may include one or more wired and/or wirelesscommunication networks including, for example, a wired or wireless localarea network (LAN), personal area network (PAN), metropolitan areanetwork (MAN), wide area network (WAN), or the like, as well as anyhardware, software and/or firmware for implementing the one or morenetworks (e.g., network routers, switches, hubs, etc.). For example, thenetwork 104 may include a cellular telephone, mobile broadband, longterm evolution (LTE), GSM/EDGE, UMTS/HSPA, IEEE 802.11, IEEE 802.16,IEEE 802.20, Wi-Fi, dial-up, and/or WiMAX network. Furthermore, thenetwork 104 may include a public network, such as the Internet, aprivate network, such as an intranet, or combinations thereof, and mayutilize a variety of networking protocols now available or laterdeveloped including, but not limited to TCP/IP based networkingprotocols.

The location source device 106 may be associated with a user and/or userprofile. Although a single location source device 106 is shown, themulti-source location system 100 may include any number of locationsource devices that may be associated with various other users and/oruser profiles. As defined above, the location source device 106 may be acellular telephone (including smartphones and/or other types of mobiletelephones), laptop, tablet, electronic reader, e-book device, mediadevice, wearable, or any combination of the above.

In some embodiments, an object authorization device 108 may be also becommunicably connected with the identification server 102. In such anembodiment, the object authorization device 108 may be a cellulartelephone (including smartphones and/or other types of mobiletelephones), laptop, tablet, electronic reader, e-book device, mediadevice, wearable, or any combination of the above. Furthermore, theobject authorization device 108 may operate to transmit renderable dataobjects to the identification server 102. In some embodiments, theobject authorization device 108 may input one or more renderable dataobjects into a memory (e.g., renderable objects database 116) accessibleby the identification server 102 of the multi-source location system100. Although shown as a single object authorization device 108, themulti-source location system 100 may include any number of objectauthorization devices 108.

In some embodiments, the location source device 106 may be configured torequest a renderable data object for display (e.g., as an impression) onthe location source device 106. The location source device 106 may alsoallow a user to input commands (such as selecting a particularrenderable data object) which may be conveyed to the identificationserver 102 via the network 104 or to the object authorization device 108for redemption. This conveyance may be transmitted as input datagenerated via one or more input devices including, without limitation, atouchscreen, a microphone, a camera, and/or a motion sensor device(e.g., an accelerometer, gyroscope, etc.).

The renderable objects database 116 may be any suitable network storagedevice configured to store some or all of the information describedherein. The renderable objects database 116 may receive renderableobject data from the identification server 102 (e.g., via a memory 204and/or processor(s) 202), and may store this renderable object data. Assuch, the renderable objects database 116 may include, for example, oneor more database systems, backend data servers, network databases, cloudstorage devices, etc. To avoid unnecessarily overcomplicating thedisclosure, the renderable objects database 116 is shown and describedherein as a single database.

The implicit locations database 114 may be any suitable network storagedevice configured to store some or all of the information describedherein. The implicit locations database 114 may receive location datafrom the identification server 102 (e.g., via a memory 204 and/orprocessor(s) 202), and may store this location data as implicitlocations data. As such, the implicit locations database 114 mayinclude, for example, one or more database systems, backend dataservers, network databases, cloud storage devices, etc. To avoidunnecessarily overcomplicating the disclosure, the implicit locationsdatabase 114 is shown and described herein as a single database.

The explicit locations database 112 may be any suitable network storagedevice configured to store some or all of the information describedherein. The explicit locations database 112 may receive location datafrom the identification server 102 (e.g., via a memory 204 and/orprocessor(s) 202), and may store this data as explicit locations data.As such, the explicit locations database 112 may include, for example,one or more database systems, backend data servers, network databases,cloud storage devices, etc. To avoid unnecessarily overcomplicating thedisclosure, the explicit locations database 112 is shown and describedherein as a single database. Although described herein as three (3)separate, distinct databases, the data of the explicit locationsdatabase 112, the implicit locations database 114, and/or the renderableobjects database 116 may equally be stored as three (3) separate datasets hosted by a single database.

Example Apparatus for Implementing Embodiments of the Present Invention

FIG. 2 shows a schematic block diagram of an example circuitry 200, someor all of which may be included in the identification server 102 or thelocation source device 106. In accordance with some example embodiments,circuitry 200 may include various means, such as one or more processors202, memory(s) 204, communications modules 206, input/output modules208. The means of circuitry 200 as described herein may be embodied as,for example, circuitry, hardware elements (e.g., a suitably programmedprocessor, combinational logic circuit, integrated circuit, or thelike), a computer program product comprising computer-readable programinstructions stored on a non-transitory computer-readable medium (e.g.,memory 204) that is executable by a suitably configured processingdevice (e.g., processor 202), or some combination thereof.

The processor 202 may, for example, be embodied as various meansincluding one or more microprocessors with accompanying digital signalprocessor(s), one or more processor(s) without an accompanying digitalsignal processor, one or more coprocessors, one or more multi-coreprocessors, one or more controllers, processing circuitry, one or morecomputers, various other processing elements including integratedcircuits such as, for example, an ASIC (application specific integratedcircuit) or FPGA (field programmable gate array), or some combinationthereof. Accordingly, although illustrated in FIG. 2 as a singleprocessor, in some embodiments, the processor 202 may comprise aplurality of processing means. The plurality of processing means may beembodied on a single computing device or may be distributed across aplurality of computing devices collectively configured to function asthe circuitry 200. The plurality of processing means may be in operativecommunication with each other and may be collectively configured toperform one or more functionalities of the circuitry 200 as describedherein. In an example embodiment, the processor 202 may be configured toexecute instructions stored in the memory 204 or otherwise accessible tothe processor 202. These instructions, when executed by the processor202, may cause the circuitry 200 to perform one or more of thefunctionalities described herein.

Whether configured by hardware, firmware/software methods, or by acombination thereof, the processor 202 may comprise an entity capable ofperforming operations according to embodiments discussed herein whileconfigured accordingly. Thus, for example, when the processor 202 isembodied as an ASIC, FPGA or the like, the processor 202 may comprisespecifically configured hardware for conducting one or more operationsdescribed herein. As another example, when the processor 202 may beembodied as an executor of instructions, such as may be stored in thememory 204, the instructions may specifically configure the processor202 to perform one or more algorithms, methods, or operations describedherein. For example, the processor 202 may be configured to executeoperating system applications, firmware applications, media playbackapplications, media editing applications, among others.

The memory 204 may comprise, for example, volatile memory, non-volatilememory, or some combination thereof. Although illustrated in FIG. 2 as asingle memory, the memory 204 may comprise a plurality of memorycomponents. The plurality of memory components may be embodied on asingle computing component or distributed across a plurality ofcomputing components. In various embodiments, the memory 204 maycomprise, for example, a hard disk, random access memory, cache memory,flash memory, a compact disc read only memory (CD-ROM), solid statememory, digital versatile disc read only memory (DVD-ROM), an opticaldisc, circuitry configured to store information, integrated circuitry,or some combination thereof. The memory 204 may be configured to storeinformation, data, applications, instructions, or the like for enablingthe circuitry 200 to carry out various functions in accordance withexample embodiments discussed herein. For example, in at least someembodiments, the memory 204 may be configured to buffer input data forprocessing by the processor 202. Additionally or alternatively, in atleast some embodiments, the memory 204 may be configured to storeprogram instructions for execution by the processor 202 and/or data forprocessing by the processor 202. The memory 204 may store information inthe form of static and/or dynamic information. This stored informationmay be stored and/or used by the circuitry 200 during the course ofperforming its functionalities.

The communications module 206 may be embodied as any component or meansembodied in circuitry, hardware, a computer program product comprisingcomputer readable program instructions stored on a computer readablemedium (e.g., memory 204) and executed by a processing device (e.g.,processor 202), or a combination thereof that is configured to receiveand/or transmit data from/to another device, such as, for example, asecond circuitry, component, server, module, or the like. In someembodiments, the communications module 206 (like other componentsdiscussed herein) can be at least partially embodied as or otherwisecontrolled by the processor 202. In this regard, the communicationsmodule 206 may be in communication with the processor 202, such as via abus. The communications module 206 may include, for example, an antenna,a transmitter, a receiver, a transceiver, network interface card and/orsupporting hardware and/or firmware/software for enablingcommunications. The communications module 206 may be configured toreceive and/or transmit any data that may be stored by memory 204 usingany protocol that may be used for communications. The communicationsmodule 206 may additionally and/or alternatively be in communicationwith the memory 204, the input/output module 208, and/or any othercomponent of the circuitry 200, such as via a bus. The communicationsmodule 206 may be configured to use one or more communications protocolssuch as, for example, short messaging service (SMS), Wi-Fi (e.g., a802.11 protocol, Bluetooth, etc.), radio frequency systems (e.g., 900MHz, 1.4 GHz, or 5.6 GHz communication systems), infrared, GSM, GSM plusEDGE, CDMA, quadband, and other cellular protocols, VOW, or any othersuitable protocol.

The input/output module 208 may be in communication with the processor202 to receive an indication of an input and/or to provide an audible,visual, mechanical, or other output. In that sense, the input/outputmodule 208 may include means for performing analog-to-digital and/ordigital-to-analog data conversions. The input/output module 208 mayinclude support, for example, for a display, touchscreen, keyboard,button, click wheel, mouse, joystick, an image capturing device (e.g., acamera), motion sensor (e.g., accelerometer and/or gyroscope),microphone, audio recorder, speaker, biometric scanner, and/or otherinput/output mechanisms. In embodiments where the circuitry 200 may beimplemented as an identification server 102, as shown in FIG. 2, aspectsof the input/output module 208 may be reduced as compared to embodimentswhere circuitry 200 may be implemented as an end-user machine or othertype of device designed for complex user interactions (i.e., locationsource device 106). In some embodiments (like other components discussedherein), the input/output module 208 may even be eliminated from thecircuitry 200. Alternatively, such as in embodiments wherein thecircuitry 200 is embodied as an identification server, at least someaspects of the input/output module 208 may be embodied on an apparatusused by a user that is in communication with the circuitry 200. Theinput/output module 208 may be in communication with the memory 204, thecommunications module 206, or any other component(s), such as via a bus.Although more than one input/output module and/or other component can beincluded in the circuitry 200, only one is shown in FIG. 2 to avoidovercomplicating the disclosure (e.g., like the other componentsdiscussed herein).

Any such computer program instructions and/or other type of code may beloaded onto a computer, processor or other programmable apparatus'scircuitry to produce a machine, such that the computer, processor otherprogrammable circuitry that executes the code may be the means forimplementing various functions, including those described herein. Insome embodiments, one or more external systems (such as a remote cloudcomputing and/or data storage system) may also be leveraged to provideat least some of the functionality discussed herein.

As described above and as will be appreciated based on this disclosure,various embodiments may be implemented as methods, mediums, devices,identification servers, databases, systems, and the like. Accordingly,embodiments may include various means comprised entirely of hardware orany combination of software and hardware. Furthermore, embodiments maytake the form of a computer program product on at least onenon-transitory computer-readable storage medium having computer-readableprogram instructions (e.g., computer software) embodied in the storagemedium. Any suitable computer-readable storage medium may be utilizedincluding non-transitory hard disks, CD/DVD-ROMs, flash memory, opticalstorage devices, quantum storage devices, chemical storage devices,magnetic storage devices, etc.

Embodiments have been described above with reference to block diagramsof components, such as functional modules, system components, andcircuitry. Below is a discussion of example process flowchartsdescribing functionality that may be implemented by one or morecomponents discussed above. Each block of the block diagrams and processflowcharts, and combinations of block diagrams and process flowcharts,respectively, can be implemented by various means including computerprogram instructions. These computer program instructions may be loadedonto a general purpose computer, special purpose computer, or otherprogrammable data processing apparatus, such as the processor 202, toproduce a machine, such that the computer program product includes theinstructions which execute on the computer or other programmable dataprocessing apparatus to create a means for implementing the functionsspecified in the flowchart block or block diagrams.

These computer program instructions may also be stored in acomputer-readable storage device (e.g., memory 204) that can direct acomputer or other programmable data processing apparatus to function ina particular manner, such that the instructions stored in thecomputer-readable storage device produce an article of manufactureincluding computer-readable instructions for implementing the functiondiscussed herein. The computer program instructions may also be loadedonto a computer or other programmable data processing apparatus to causea series of operational steps to be performed on the computer or otherprogrammable apparatus to produce a computer-implemented process suchthat the instructions that execute on the computer or other programmableapparatus provide steps for implementing the functions discussed herein.Accordingly, blocks of the block diagrams and flowchart illustrationssupport combinations of means for performing the specified functions,combinations of steps for performing the specified functions and programinstruction means for performing the specified functions. It will alsobe understood that each block of the block diagrams and processflowcharts, and combinations of blocks in the block diagrams and processflowcharts, can be implemented by special purpose hardware-basedcomputer systems that perform the specified functions or steps, orcombinations of special purpose hardware and computer instructions.

Improved Renderable Data Objects

The method, apparatus (e.g., identification server 102), and computerprogram product of an example embodiment will now be described inconjunction with the operations illustrated in FIGS. 3-8. With referenceto FIG. 3, a flowchart is provided that illustrates a method 300completed by the identification server 102 for determining improvedrenderable data objects for use with some embodiments described herein.The apparatus (e.g., identification server 102 in FIG. 1) may receive arequest for a renderable data object from a location source deviceassociated with a user profile at Block 305 and may receive instantlocation data associated with the location source device at Block 310.The instant location data may be generated by the location source deviceusing Global Positioning Satellite (“GPS”) technologies. Alternativelyor additionally, in some embodiments, location data may be generated bydetection of a LAN or access point (e.g., Bluetooth or Wi-Fitechnologies) or by reading a tag having a known location (e.g.,Radio-frequency identification (“RFID”), QR code, or barcodetechnologies) using a location source device coupled reader or scanner.The apparatus may, in some embodiments, receive a request from alocation source device at Block 305 by manual request from a userassociated with the location source device. In such an embodiment, theuser may input a request (via text, voice, etc.) at their locationsource device (e.g., via an application), which may convey the requestfor a renderable data object to the identification server 102.

In other embodiments, the apparatus may receive a request for arenderable data object at Block 305 without input from a user. In suchan embodiment, the location source device may automatically request arenderable data object based upon the opening of an associatedapplication program of the location source device. The location sourcedevice may be further configured to frequently request a renderable dataobject and transmit instant location data (e.g., periodically pushinglocation data determined based on the GPS, Wi-Fi, Bluetooth, etc.). Byway of example, a location source device may be traveling along a routesuch that the instant location data associated with the location sourcedevice changes. In such an example, the location source device mayperiodically request one or more renderable data objects based upon thechange in the instant location data (e.g., moving outside of the rangeof one or more renderable data objects and/or associated objectredemption locations).

Once the instant location data associated with the location sourcedevice has been received at Block 310, the identification server 102 mayinclude means, such as the processor 202, the communication modules(s)206, or the like, for querying an explicit locations database 112associated with the user profile to identify explicit locations data togenerate an explicit locations data set based on the explicit locationsdata at Block 315. As defined above, the explicit locations database 112may include explicit locations data that relates to known or otherwisestored fixed locations (e.g., a latitude and a longitude) such as a userprofile's billing address, shipping address, work address, and the like.The explicit locations data may further be manually inputted by a userto the user's profile (e.g., and later extracted by the identificationserver 102) or, depending upon various user permissions, may beautomatically extracted from the user's profile via an offline hivequery. While the location coordinates for each explicit locations dataentry may change (e.g., movement of a billing address), the explicitlocations data associated with the location coordinate is fixed untilmanually updated by a user or a user's profile.

The identification server 102 may also include means, such as theprocessor 202, the communication modules(s) 206, or the like, forquerying an implicit locations database 114 associated with the userprofile to identify implicit locations data to generate an implicitlocations data set based on the implicit locations data and the instantlocation data of the location source device at Block 320. As definedabove, the implicit locations database 114 may include implicitlocations data that relates to one or more previous requests by thelocation source device for a renderable data object (e.g., globalpositioning system (“GPS”) pings from the mobile device) and may includethe instant location data (e.g., from a pending request for a renderabledata object) of the location source device. As described and definedabove, the implicit locations data may correspond to locationcoordinates corresponding to where the user most frequently is located.By way of example, the location source device associated with the usermay request one or more renderable data objects at work, home, stores,and the like. The identification server 102 may receive instant locationdata of the location source device at each request for a renderable dataobject and may store the locations coordinates of the location sourcedevice as implicit locations data. As described below with reference toFIG. 5, the identification server 102 may employ a clustering method tothe group the implicit locations data. For example, a location sourcedevice may frequently request a renderable data object when located in ashopping mall. However, the location of each request within the shoppingmall may be associated with a different location coordinate (such asrequest from different stores at a shopping mall having a largegeographic area). The clustering method of FIG. 5 may operate toappropriately group these requests to the same location data coordinatein order to more accurately determine proximate data objects.

Following generation of the explicit locations data set and the implicitlocations data set at Blocks 315, 320, the identification server 102 mayalso include means, such as the processor 202, the communicationmodules(s) 206, or the like, for coranking the explicit locations dataset and the implicit locations data set to generate a coranked locationsdata set comprising one or more coranked locations at Block 325.Described more fully with reference to FIG. 4 below, the corankedlocations data set may order or otherwise rank the explicit locationsdata and the implicit locations data into a single data set for use indetermining a proximity score described hereafter. Said differently, thecoranked locations data set may serve to represent the most frequentlocations of the user (e.g., via the coranking of the explicit locationsdata and implicit locations data) to be used in determining a proximityscore (e.g., described hereafter) in order to define a particular userprofile's willingness to travel to redeem one or more terms within oneor more data sets of the renderable data object.

The identification server 102 may also include means, such as theprocessor 202, the communication modules(s) 206, or the like, forquerying a renderable object database 116 to generate a set of one ormore renderable data objects based upon the one or more corankedlocations of the coranked locations data set, wherein each of the one ormore renderable data objects is associated with one or more objectredemption locations at Block 330. As defined above, the renderableobjects database 116 refers to a repository storing renderable dataobjects accessible by the identification server 102. The renderable dataobject may include one or more data sets and/or instructions associatedwith various terms, offers, promotions, deals, or the like. Thelocations sever 102 may query the renderable objects database 116 atBlock 330 to determine renderable data objects available in a geographiclocation relative the instant location data of the location sourcedevice. In some embodiments, in an instance in which the location sourcedevice requests a renderable data object, the instant location data ofthe location source device may be used by the identification server 102to determine renderable data objects within a geographic area relativethe instant location data. The size of this geographic area may be setas a system parameter or may be adjustable depending upon the instantlocation data of the location source device. By way of example, thegeographic area corresponding to a location source device in New YorkCity may be smaller than the geographic area of a rural, sparselypopulated location. Said differently, users located in denselypopulated, urban environments may have to travel a smaller distance tofind object redemption locations than users located in rural, sparselypopulated environments.

In some other embodiments, such as those when instant location data isunavailable for the location source device (e.g., poor line of sight(“LOS”) to GPS satellites or renderable data objects requested viaemail), the identification server 102 may use other locations as thecentral coordinate for determining the geographic area. For example, inan instance in which a user is subscribed to an email newsletter, theidentification server 102 may determine the IP address of a user deviceor may request a location of the user for use as an epicenter of thegeographic area. Similarly, in an instance in which instant locationdata is unavailable due to poor LOS, the identification server 102 mayutilize one or more of the implicit locations data coordinates,described herein, as the epicenter of the geographic area.

The renderable objects database 116 may also store one or more objectredemption locations associated with each of the one or more renderabledata objects. In some embodiments, these object redemption locations aredefined by a provider (e.g., object authorization device 108) of therenderable data object. By way of example, an object authorizationdevice 108 may offer a renderable data object (e.g., a promotion) thatmay be redeemed at three (3) object redemption locations within ageographic region relative the location source device. As describedbelow, each of these object redemption locations may be considered bythe identification server 102 in determining which renderable dataobject to transmit to the location source device (e.g. the proximatedata object).

The identification server 102 may also include means, such as theprocessor 202, the communication modules(s) 206, or the like, forcomparing the one or more coranked locations of the coranked locationsdata set with each of the one or more object redemption locations ofeach of the one or more renderable data objects to determine a proximityscore for each of the renderable data objects with respect to each ofthe one or more coranked locations at Block 335. As described below withreference to FIG. 6, the identification server 102 may employ aproximity method to determine a proximity score for each of therenderable data objects. In particular, the identification server 102may compare the location data for each object redemption location witheach coranked locations data entry to determine a proximity score (e.g.,effective distance between) for each renderable data object. By way ofcontinued example, the identification server 102 may compare thegeographic location of each of the object authorization device's three(3) object redemption locations to each of the one or more corankedlocations (e.g., office, home, grocery store, etc.). The proximity scoremay then represent the minimum distance between each of the three (3)object redemption locations to each of the most frequent locations ofthe user and associated location source device. Said differently, theproximity score may function to describe a user's willingness to travelto an object redemption location in that the object redemption locationsthat have a lower proximity score may represent object redemptionlocations that are convenient (e.g., closest to a user's frequentlocations) to the user or user profile. Still further, given that theone or more coranked locations represent the most frequent locations ofthe user profile (e.g., via the coranking of the explicit locations dataand implicit locations data), the proximity score considers both fixedlocations and mobile locations of a user in determining that particularuser profile's willingness to travel.

Once a proximity score for each renderable data object with respect toeach coranked location is determined at Block 335, the identificationserver 102 may also include means, such as the processor 202, thecommunication modules(s) 206, or the like, for ranking each of the oneor more renderable data objects based upon proximity score to generate aproximate object set at Block 340. In some embodiments, theidentification server 102 may rank the renderable data objects inascending order (e.g., lowest proximity score ranked first to highestproximity score ranked last) to generate a proximate object set. In suchan embodiment, the renderable data objects with at least one objectredemption location closest (e.g., via comparison of geographic locationcoordinates at Block 335) to at least one coranked location (e.g., auser's most frequent locations) would be ranked first. In some otherembodiments, the identification server 102 may employ weightedparameters such that each object redemption location and/or each rankedlocation is differently weighted. By way of example, the identificationserver 102 may determine that object redemption locations ingeographical areas with higher crime rates should be weighted lower thanobject redemption locations in geographic areas with lower crime rates.Similarly, the identification server 102 may weight ranked locationsbased upon the frequency in which the user is located at said rankedlocation. By way of example, in an instance in which a user who isemployed at a grocery store, hotel, or similar location that maycoincide with an object redemption location, requests a renderable dataobject, the identification server may instead provide a renderable dataobject with a redemption location nearer their home (e.g., forconvenience traveling to and from work, to avoid redeeming an offer atwork, etc.) even though the geographic location of their employmentlocation is ranked higher (e.g., having a lower proximity score).

Once the one or more renderable data objects are ranked based uponproximity score at Block 340, the identification server 102 may alsoinclude means, such as the processor 202, the communication modules(s)206, or the like, for identifying and transmitting a proximate dataobject, wherein the proximate data object of the proximate object setcomprises the renderable data object having a minimum proximity score atBlock 345. As described above, the identification server 102 mayidentify, based upon the preceding determinations, a proximate dataobject having a minimum proximity score (e.g., the lowest effectivegeographical distance between). The identification server 102 may thentransmit the proximate data object to the location source deviceassociated with the user profile. As described above, in an instance inwhich a location source device is not present (e.g., via an emailnewsletter, subscription, web server, or the like), the proximate dataobject may be transmitted to a separate device or account of the userprofile (e.g., via email, text message, etc.).

In some embodiments, the proximate data object identified by theidentification server 102 at Block 345 may further be stored by theidentification server 102 (e.g., via the memory 204 or the like) to beused in the generation and/or modification of one or more predictivemodels (e.g., machine learning models). In particular, the methodsdescribed herein may be performed by the identification server 102 inorder to identify a proximate data object requested by various locationsource devices each associated with a user profile. The proximate dataobjects identified by these methods for each of the location sourcedevices and associated user profiles may then be used by a predicativemodel to improve subsequent determinations of proximate data object forusers in general. By way of example, a predictive model may utilizeproximate data objects determined and stored by the method 300 in orderto estimate a conversion rate associated with each renderable dataobject (e.g., via the terms defined by each renderable data object)based upon the distance between the location source device and the oneor more object redemption locations associated with the terms of eachrenderable data object (e.g., 5% conversion rate for object redemptionlocations within 1 mile of the location source device, 1% conversionrate object redemption locations between 1-2 miles of the locationsource device, etc.).

With reference to FIG. 4, a method 400 is illustrated for corankingexplicit locations data and implicit locations data. The identificationserver 102 may include means, such as the processor 202, thecommunication modules(s) 206, or the like, for querying an explicitlocations database associated with the user profile to identify explicitlocations data to generate an explicit locations data set based on theexplicit locations data at Block 405. Similarly, the identificationserver 102 may include means, such as the processor 202, thecommunication modules(s) 206, or the like, for querying an implicitlocations database associated with the user profile to identify implicitlocations data to generate an implicit locations data set based on theimplicit locations data and the instant location data of the locationsource device at Block 410. As described above in reference to FIG. 3,the identification server 102 may be in communication with variousdatabases including an explicit locations database 112 and an implicitlocations database 114 (see FIG. 1). The identification server 102 mayreceive from a query to these databases an explicit locations data setand an implicit locations data set, wherein the implicit locations dataset further includes the instant location data of the location sourcedevice.

The identification server 102 may then include means, such as theprocessor 202, the communication modules(s) 206, or the like, forcomparing the explicit locations data set with the implicit locationsdata set to determine one or more verified locations in an instance inwhich the explicit locations data and the implicit locations datasatisfy a proximity threshold at Block 415. By way of example, theidentification server 102 may receive explicit locations data (e.g.,geographic location coordinates) representative of fixed locationsprovided by the user profile (e.g., billing address, shipping address,etc.). The identification server 102 may also receive implicit locationsdata (e.g., geographic location coordinates) representative of theinstant location of the location source device as well as the geographiclocation of previous requests for a renderable data object (e.g., viaGPS pings or the like). In order to determine one or more verifiedlocations at Block 415, the identification server 102 may compare eachof these location coordinates to determine if one or more of theimplicit locations data entries satisfies a proximity threshold. By wayof example, a proximity threshold may define a one (1) mile geographicradius located at the location coordinates of each explicit locationsdata entry (e.g., geographic coordinates). The identification server 102may compare, for example, various previous requests from the locationsource device for a renderable data object (e.g., implicit locationsdata) with the proximity threshold to determine if the geographiclocations of these implicit locations data coordinates satisfies theproximity threshold. Said differently, the identification server 102 maydetermine if the geographic locations of each of the implicit locationsdata entries are located within the one (1) mile perimeter. For everyinstance in which the frequent location satisfies the proximitythreshold defined by the one or more explicit locations data entries,the identification server may determine one or more locations.

As would be understood by one of ordinary skill in the art in light ofthe present disclosure, the use of verified locations may improvedeterminations of renderable data objects that are proximate thelocation source device or frequent locations (e.g., coranked locationsdata) of the location source device. The use of verified locations inthe coranking method 400 allows for the identification server 102 tomore accurately determine the geographic locations where the user isfrequently located so as to provide renderable data objects proximatethese verified locations.

Accordingly, the identification server 102 may then include means, suchas the processor 202, the communication modules(s) 206, or the like, forgenerating a coranked locations data set comprising one or more corankedlocations at Block 435. As illustrated in FIG. 4, the identificationserver 102 may first rank the one or more verified locations at Block420, may second rank the implicit locations data that does not satisfythe proximity threshold at Block 425, and may third rank explicitlocations data that does not satisfy the proximity threshold at Block430. While the identification server 102 may first rank the one or moreverified locations for the reasons discussed above, the identificationserver may second rank frequent location that does not satisfy theproximity threshold at Block 425. By way of example, in an instance inwhich no verified locations are determined at Block 415, theidentification server 102 may rank implicit locations data (e.g., GPSpings from the mobile device, previous and instant) above explicitlocations data (e.g., billing addresses, shipping addresses, and thelike). Given that the implicit locations data corresponds to receivedlocations data from the location source device as opposed to userinputted data (e.g., extracted from a user's profile), theidentification server 102 may determine that the implicit locations datais a more accurate representation of the location of the user profileand associated location source device.

With reference to FIG. 5, a method 500 is illustrated for clusteringimplicit locations data. The identification server 102 may includemeans, such as the processor 202, the communication modules(s) 206, orthe like, for querying an implicit locations database associated withthe user profile to identify implicit locations data at Block 505 andfor generating an implicit locations data set based on the implicitlocations data and the instant location data of the location sourcedevice at Block 510. As described above in reference to FIG. 3, theimplicit locations data and associated implicit locations data set maycorrespond to the instant location data of the location source device inaddition to the location data associated with one or more previousrequests for a renderable data object by the location source device.

The identification server 102 may also include means, such as theprocessor 202, the communication modules(s) 206, or the like, forrounding each implicit locations data entry at Block 515 and forclustering each rounded implicit locations data entry intro groupings atBlock 520. The identification server 102 may receive location data froma variety of sources as described herein and, in some instances, mayreceive implicit locations data entries which correspond to the samegeographic location, yet have different geographic coordinates (e.g., alatitude and a longitude). By way of example, a location source deviceand associated user profile may request a renderable data object at ashopping center, mall, grocery store, etc. on separate occasions intime, but may receive different geographic coordinates (e.g., andtherefore different implicit locations data). This difference may beattributed to the geographic size of the location in question, theprecision of the positioning systems of the location source device,error in data transmission, and/or the like. However, embodiments of thepresent invention may employ the clustering method 500, in particular atBlocks 515 and 520, to attribute each of these implicit locations dataentries to the same geographic location.

As shown in FIG. 5, the identification server 102 may round eachimplicit locations data entry (e.g., to two (2) decimal places) at Block515, and the identification server 102 may group each of these implicitlocations data entries into similar groupings based upon this roundingprocedure. While described herein with reference to two (2) decimalplaces, the present disclosure contemplates that any rounding proceduremay be used based upon the application at issue. For example, ininstances in which distinct geographic locations are densely populated(e.g., an urban city center), additional decimals may be included toincrease the resolution of the rounded implicit locations data. Incontrast, in instance in which distinct geographic locations aresparsely populated, (e.g., a national forest). Fewer decimals may beincluded to decrease the resolution of the rounded implicit locationsdata.

The identification server 102 may further include means, such as theprocessor 202, the communication modules(s) 206, or the like, fordetermining a frequency score for each grouping based on the number ofrounded implicit locations data entries in each grouping at Block 525.To further improve the accuracy of determinations of renderable dataobjects that are proximate the location source device or frequentlocations of the location source device, a frequency determination maybe used by the identification server 102 at Block 525. Theidentification server 102 may count the total number of implicitlocations data entries within each grouping of Block 520 and may assigna frequency score corresponding to the number of rounded implicitlocations data entries in said grouping. The use of a frequencycalculation in the clustering method 500 allows for the identificationserver 102 to more accurately determine the geographic locations wherethe user is frequently located so as to provide renderable data objectsproximate these locations.

In some embodiments, the method 500 may include weighting each groupingbased upon a time stamp associated with each of the implicit locationsdata entries at Block 530. By way of example, in an instance in whichvarious groupings possess equivalent frequency scores (e.g., the samenumber of implicit locations data entries in separate groupings), aweighting step may be used to further differentiate groupings. Saiddifferently, a user and associated location source device may be locatedequally frequently at two locations (e.g., an office address and aresidential address). In order to further separate these groupings, insome embodiments, the identification server 102 may weight requests forrenderable data objects via ordering each request by the time stampassociated with each request. In particular, the identification server102 may order requests for a renderable data object by the locationsource device having a lower time stamp (e.g., a smaller mathematicaldifference between the current time, via a clock or the like, and thetime stamp associated with each request for a renderable data object)higher relative to other implicit locations data. In these instances,the rounded implicit locations data corresponding to a recent previousrequest for a renderable data object (e.g., having a lower time stamp)may be considered more accurate than older in time requests, for examplein the instance in which a user relocates to a new city. By utilizingsuch a weighting step that accounts for the time stamp of the implicitlocations data, the method 500 may ensure that the epicenter of thegeographic area corresponds to at least one implicit locations dataentry rather than the center of mass of the clustered and rankedimplicit locations data.

Furthermore, in some embodiments, the method 500 may also include means,such as the processor 202, the communication modules(s) 206, or thelike, for querying an explicit locations database associated with theuser profile to identify explicit locations data. As described in detailwith reference to FIGS. 3-4, the explicit locations data may includedata that relates to known or otherwise stored fixed locations (e.g., alatitude and a longitude) such as a user profile's billing address,shipping address, work address, and the like. In such an embodiment, themethod 500 may also utilize explicit locations data in conjunction withthe implicit locations data in each of the rounding and clusteringmethod steps at Blocks 515, 520, respectively. The use of explicitlocations data in conjunction with the implicit locations data in method500 may serve to further improve the accuracy of determining proximatedata objects and may more accurately model conversion rates forparticular renderable data objects.

With reference to FIG. 6, a method for identifying a proximate dataobject 600 is illustrated. As described above with reference to FIG. 3,the identification server 102 may include means, such as the processor202, the communication modules(s) 206, or the like, for querying arenderable object database to generate a set of one or more renderabledata objects based upon one or more coranked locations of a corankedlocations data set, wherein each of the one or more renderable dataobjects is associated with one or more object redemption locations atBlock 605. Once the identification server 102 generates a set of one ormore renderable data objects having one or more object redemptionlocations, the identification server 102 may include means, such as theprocessor 202, the communication modules(s) 206, or the like, forcomparing each of the one or more object redemption locations with eachof the one or more coranked locations at Block 610. In some embodiments,this comparison is the mathematical difference between the geographiccoordinates of each data entry. This comparison between each objectredemption location and each coranked location is determined as aproximity score at Block 615 as described above.

In some embodiments, the comparison between each object redemptionlocation and each coranked location may account for road closures,natural obstacles, traffic patterns, and the like in order to serve asan effective distance between each object redemption location and eachcoranked location. Said another way, the identification server 102 maydetermine a proximity score at Block 615 that comprises an effectivedistance between the two geographic coordinates (e.g., as opposed to astraight line distance). In such an embodiment, the proximity score maymore accurately represent the distance between each ranked location andeach object redemption location so as to provide proximate data objectsthat more accurately describe a user's willingness to travel to aparticular object redemption location.

Once a proximity score is determined for each renderable data objectbased upon its associated one or more object redemption locations, theidentification server 102 may include means, such as the processor 202,the communication modules(s) 206, or the like, for ranking each objectbased upon its respective proximity score in ascending order such thatthe minimum proximity score is ranked first at Block 620. Theidentification server 102 may order each proximity score for eachrenderable data object in order to provide to the user the renderabledata object having a minimum proximity score. As described above, theproximity score may function to describe a user's willingness to travelto an object redemption location in that object redemption locationshaving a lower proximity score may represent object redemption locationsthat are convenient (e.g., closest to a user's frequent locations) tothe user profile. Still further, given that the one or more corankedlocations represent the most frequent locations of the user profile(e.g., via the coranking of the explicit locations data and implicitlocations data), the proximity score considers both fixed and mobilelocations of a user profile in determining that particular user'swillingness to travel.

With reference to FIG. 7, a method for determining improved renderabledata objects via email 700 is illustrated. While a user may oftenrequest a renderable data object via a location source device (e.g., amobile device) such that the identification server 102 may receiveinstant location data of the location source device, in someembodiments, such as renderable data objects provided via email, theinstant location data of the location source device may be unavailable.Said differently, some users may subscribe to an email newsletterproviding renderable data objects without the use of a location sourcedevice. In such an embodiment, the identification server 102 may includemeans, such as the processor 202, the communication modules(s) 206, orthe like, for receiving a request for a renderable data object from auser profile via email at Block 705 and for determining if instantlocation data for the user profile is available at Block 710.

If instant location data for the user profile is available at Block 710,the identification server 102 may include means, such as the processor202, the communication modules(s) 206, or the like, for comparing theinstant location data with each of the one or more object redemptionlocations of each of the one or more renderable data objects at Block715 and for determining a proximity score for each of the renderabledata objects with respect to the instant location data at Block 720. Incontrast, if instant location data for the user profile is unavailableat Block 710, the identification server 102 may include means, such asthe processor 202, the communication modules(s) 206, or the like, forcomparing one or more coranked locations of a coranked locations dataset with each of the one or more object redemption locations of each ofthe one or more renderable data objects at Block 730 and for determininga proximity score for each of the renderable data objects with respectto each of the one or more coranked locations at Block 735. Once aproximity score is determined by either set of steps, the identificationserver 102 may include means, such as the processor 202, thecommunication modules(s) 206, or the like, for identifying andtransmitting a proximate data object at Blocks 725, 740, respectively.

The method 700 of FIG. 7 may operate similar to the above description ofthe methods 300, 400, and 600 of FIGS. 3, 4, and 6. However, the method700 differs at Block 710 in determining whether or not instant devicelocation data is present. As would be understood by one of ordinaryskill in the art in light of the present disclosure, the identificationserver 102 may utilize the methods described herein to improve providingrenderable data objects (e.g., determining the most appropriateproximate data object) via multiple sources of coranked locations data.However, in some embodiments in which instant location data of thelocation source device is unavailable (e.g., an email implementedembodiment), the identification server 102 may be required to determinea proximity score for each of the renderable data objects based onlyupon data of a coranked locations data set. However, in some emailimplemented embodiments, the identification server 102 may also receiveinstant location data for the user profile (via manual user input) whichmay further improve the accuracy of the proximity score determination.

With reference to FIG. 8, a method for determining improved renderabledata objects via a web-based service 800 is illustrated. While a usermay often request a renderable data object via a location source devicesuch that the identification server 102 may receive instant locationdata of the location source device, in some embodiments, such asrenderable data objects provided via a web application, the instantlocation data of the location source device may be unavailable. By wayof example, in some embodiments, a user may input a search request for arenderable data object via a search engine or the like at Block 805. Inresponse, the identification server 102 may similarly track the method300 of FIG. 3, but may rank the sources of location data as shown inmethod 800 of FIG. 8.

In such an embodiment, the identification server 102 may include means,such as the processor 202, the communication modules(s) 206, or thelike, for extracting search location data from an input search query ofthe user profile at Block 810 and extracting drop down location datafrom a user input at Block 815. By way of example, a user may input asearch request for renderable data objects in San Francisco, and theidentification server 102 may extract this location data from the inputsearch query. Similarly, a user may be provided a drop-down inputrequest to further narrow their location. For example, the drop-downdata input may request that the user select a particular area of SanFrancisco.

Additionally, the identification server 102 may include means, such asthe processor 202, the communication modules(s) 206, or the like, forreceiving instant location data associated with a location source deviceassociated with the user profile at Block 820 and for querying anexplicit locations database associated with the user profile to identifyexplicit locations data at Block 825. Description of this process isprovided more fully in reference to FIG. 3 above, and the method 800performs a similar process at these steps. The identification server 102may also include means, such as the processor 202, the communicationmodules(s) 206, or the like, for extracting IP location data mapped to adevice associated with the user profile at Block 830. In someembodiments, the internet protocol address may provide additionallocation data for consideration by the identification server 102. Asshown in FIG. 8, the identification server 102 may, in some embodiments,not receive instant location data at Block 820, such as when the searchquery is inputted by the user without a location source device (e.g.,via a device that does not independently transmit its location).

Furthermore, methods 700 and 800 refer to instances in which a user mayrequest a renderable data object via a location source device when theinstant location data of the location source device may be unavailable(e.g., via email and/or a web-based service). However, in someembodiments, even if the instant location data of the location sourcedevice is determined (e.g., at Blocks 715, 820, respectively), themethods 700, 800 may utilize the instant location data of the locationsource device in conjunction with implicit locations data and/orexplicit locations data to identify proximate data objects. Saiddifferently, in instances in which the methods 700, 800 receive instantlocation data, the methods may also use the co-ranking and clusteringmethods 400, 500 to provide proximate data objects relative not only theinstant location, but relative one or more of the implicit and/orexplicit locations.

FIGS. 3-8 illustrate example flowcharts of the example operationsperformed by a method, apparatus and computer program product inaccordance with an embodiment of the present invention. It will beunderstood that each block of the flowcharts, and combinations of blocksin the flowcharts, may be implemented by various means, such ashardware, firmware, processor, circuitry and/or other devices associatedwith execution of software including one or more computer programinstructions. For example, in reference to FIGS. 3-8, one or more of theprocedures described herein may be embodied by computer programinstructions. In this regard, the computer program instructions whichembody the procedures described above may be stored by a memory 204 ofan apparatus employing an embodiment of the present invention andexecuted by a processor 202 in the apparatus.

As will be appreciated by one of ordinary skill in the art, any suchcomputer program instructions may be loaded onto a computer or otherprogrammable apparatus (e.g., hardware) to produce a machine, such thatthe resulting computer or other programmable apparatus provides forimplementation of the functions specified in the flowcharts' block(s).These computer program instructions may also be stored in anon-transitory computer-readable storage memory that may direct acomputer or other programmable apparatus to function in a particularmanner, such that the instructions stored in the computer-readablestorage memory produce an article of manufacture, the execution of whichimplements the function specified in the flowcharts' block(s). Thecomputer program instructions may also be loaded onto a computer orother programmable apparatus to cause a series of operations to beperformed on the computer or other programmable apparatus to produce acomputer-implemented process such that the instructions which execute onthe computer or other programmable apparatus provide operations forimplementing the functions specified in the flowcharts' block(s). Assuch, the operations of FIGS. 3-8 when executed, convert a computer orprocessing circuitry into a particular machine configured to perform anexample embodiment of the present invention. Accordingly, the operationsof FIGS. 3-8 define an algorithm for configuring a computer orprocessing to perform an example embodiment. In some cases, a generalpurpose computer may be provided with an instance of the processor whichperforms the algorithms of FIGS. 3-8 to transform the general purposecomputer into a particular machine configured to perform an exampleembodiment.

Accordingly, blocks of the flowcharts support combinations of means forperforming the specified functions and combinations of operations forperforming the specified functions. It will also be understood that oneor more blocks of the flowcharts, and combinations of blocks in theflowcharts, can be implemented by special purpose hardware-basedcomputer systems which perform the specified functions, or combinationsof special purpose hardware and computer instructions. In someembodiments, certain ones of the operations herein may be modified orfurther amplified as described below. Moreover, in some embodiments,additional optional operations may also be included. It should beappreciated that each of the modifications, optional additions oramplifications below may be included with the operations above eitheralone or in combination with any others among the features describedherein.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseembodiments of the invention pertain having the benefit of the teachingspresented in the foregoing descriptions and the associated drawings.Therefore, it is to be understood that the embodiments of the inventionare not to be limited to the specific embodiments disclosed and thatmodifications and other embodiments are intended to be included withinthe scope of the appended claims. Although specific terms are employedherein, they are used in a generic and descriptive sense only and notfor purposes of limitation.

1-20. (canceled)
 21. A method for determining improved data objects, themethod comprising: receiving a request for a renderable data object froma location source device associated with a user profile; receivinginstant location data associated with the location source device;querying an explicit locations database associated with the user profileto identify explicit locations data; generating an explicit locationsdata set based on the explicit locations data; querying an implicitlocations database associated with the user profile to identify implicitlocations data; generating an implicit locations data set based on theimplicit locations data and the instant location data of the locationsource device; coranking the explicit locations data set and theimplicit locations data set to generate a coranked locations data setcomprising one or more coranked locations; querying a renderable objectsdatabase to generate a set of one or more renderable data objects basedupon the one or more coranked locations of the coranked locations dataset, wherein each of the one or more renderable data objects isassociated with one or more object redemption locations; comparing theone or more coranked locations of the coranked locations data set witheach of the one or more object redemption locations of each of the oneor more renderable data objects to determine a proximity score for eachof the renderable data objects with respect to each of the one or morecoranked locations, wherein the proximity score comprises a mathematicaldifference between location data entries of the one or more corankedlocations of the coranked locations data set and location data entriesof the one or more object redemption locations associated with the oneor more renderable data objects; identifying a proximate data objectbased on the determined proximity scores; and transmitting the proximatedata object to the location source device.
 22. The method according toclaim 21, wherein the coranking of the explicit locations data set andthe implicit locations data set further comprises: comparing theexplicit locations data set with the implicit locations data set todetermine one or more verified locations in an instance in which theexplicit locations data and the implicit locations data satisfy aproximity threshold; generating the coranked locations data setcomprising: first ranking the one or more verified locations; secondranking the implicit locations data that does not satisfy the proximitythreshold; and third ranking the explicit locations data that does notsatisfy the proximity threshold.
 23. The method according to claim 21,wherein the explicit locations data of the explicit locations databaseincludes location data corresponding to one or more of the billingaddress, the shipping address, and/or the social media of the userprofile associated with the location source device.
 24. The methodaccording to claim 21, wherein the location data entries of the one ormore coranked locations of the coranked locations data set each comprisea plurality of geographic coordinates such that the proximity score foreach of the renderable data objects with respect to each of the one ormore coranked locations comprises the mathematical difference betweenthe average geographic coordinate associated with the respectivecoranked location and the location data entry associated with therespective redemption location.
 25. The method according to claim 21,wherein the implicit locations database comprises implicit locationsdata gathered via one or more previous requests for a renderable dataobject by the location source device.
 26. The method according to claim21, wherein the implicit locations data and the explicit locations dataare grouped via a clustering method.
 27. The method according to claim26, wherein the implicit locations data is further grouped via amodified k-means clustering method, wherein the location data associatedwith requests for a renderable data object by the location source devicehaving a lower time stamp are ranked higher relative other implicitlocations data.
 28. A computer program product comprising at least onenon-transitory computer-readable storage medium havingcomputer-executable program code instructions stored therein, thecomputer-executable program code instructions comprising program codeinstructions for: receiving a request for a renderable data object froma location source device associated with a user profile; receivinginstant location data associated with the location source device;querying an explicit locations database associated with the user profileto identify explicit locations data; generating an explicit locationsdata set based on the explicit locations data; querying an implicitlocations database associated with the user profile to identify implicitlocations data; generating an implicit locations data set based on theimplicit locations data and the instant location data of the locationsource device; coranking the explicit locations data set and theimplicit locations data set to generate a coranked locations data setcomprising one or more coranked locations; querying a renderable objectsdatabase to generate a set of one or more renderable data objects basedupon the one or more coranked locations of the coranked locations dataset, wherein each of the one or more renderable data objects isassociated with one or more object redemption locations; comparing theone or more coranked locations of the coranked locations data set witheach of the one or more object redemption locations of each of the oneor more renderable data objects to determine a proximity score for eachof the renderable data objects with respect to each of the one or morecoranked locations, wherein the proximity score comprises a mathematicaldifference between location data entries of the one or more corankedlocations of the coranked locations data set and location data entriesof the one or more object redemption locations associated with the oneor more renderable data objects; identifying a proximate data objectbased on the determined proximity scores; and transmitting the proximatedata object to the location source device.
 29. The computer programproduct according to claim 28, wherein the coranking of the explicitlocations data set and the implicit locations data set furthercomprises: comparing the explicit locations data set with the implicitlocations data set to determine one or more verified locations in aninstance in which the explicit locations data and the implicit locationsdata satisfy a proximity threshold; generating the coranked locationsdata set comprising: first ranking the one or more verified locations;second ranking the implicit locations data that does not satisfy theproximity threshold; and third ranking explicit locations data that doesnot satisfy the proximity threshold.
 30. The computer program productaccording to claim 28, wherein the explicit locations data of theexplicit locations database includes location data corresponding to oneor more of the billing address, the shipping address, and/or the socialmedia of the user profile associated with the location source device.31. The computer program product according to claim 28, wherein thelocation data entries of the one or more coranked locations of thecoranked locations data set each comprise a plurality of geographiccoordinates such that the proximity score for each of the renderabledata objects with respect to each of the one or more coranked locationscomprises the mathematical difference between the average geographiccoordinate associated with the respective coranked location and thelocation data entry associated with the respective redemption location.32. The computer program product according to claim 28, wherein theimplicit locations database comprises implicit locations data gatheredvia one or more previous requests for a renderable data object by thelocation source device.
 33. The computer program product according toclaim 28, wherein the implicit locations data and the explicit locationsdata are grouped via a clustered method.
 34. The computer programproduct according to claim 33, wherein the implicit locations data isfurther grouped via a modified k-means clustering method, wherein thelocation data associated with requests for a renderable data object bythe location source device having a lower time stamp are ranked higherrelative other implicit locations data.
 35. An apparatus comprising atleast one processor and at least one memory including computer programcode, the at least one memory and the computer program code configuredto, with the processor, cause the apparatus to at least: receive arequest for a renderable data object from a location source deviceassociated with a user profile; receive instant location data associatedwith the location source device; query an explicit locations databaseassociated with the user profile to identify explicit locations data;generate an explicit locations data set based on the explicit locationsdata; query an implicit locations database associated with the userprofile to identify implicit locations data; generate an implicitlocations data set based on the implicit locations data and the instantlocation data of the location source device; corank the explicitlocations data set and the implicit locations data set to generate acoranked locations data set comprising one or more coranked locations;query a renderable objects database to generate a set of one or morerenderable data objects based upon the one or more coranked locations ofthe coranked locations data set, wherein each of the one or morerenderable data objects is associated with one or more object redemptionlocations; compare the one or more coranked locations of the corankedlocations data set with each of the one or more object redemptionlocations of each of the one or more renderable data objects todetermine a proximity score for each of the renderable data objects withrespect to each of the one or more coranked locations, wherein theproximity score comprises a mathematical difference between locationdata entries of the one or more coranked locations of the corankedlocations data set and location data entries of the one or more objectredemption locations associated with the one or more renderable dataobjects; identify a proximate data object based on the determinedproximity scores; and transmit the proximate data object to the locationsource device.
 36. The apparatus according to claim 35, wherein thecoranking of the explicit locations data set and the implicit locationsdata set further comprises: comparing the explicit locations data setwith the implicit locations data set to determine one or more verifiedlocations in an instance in which the explicit locations data and theimplicit locations data satisfy a proximity threshold; generating thecoranked locations data set comprising: first ranking the one or moreverified locations; second ranking the implicit locations data that doesnot satisfy the proximity threshold; and third ranking explicitlocations data that does not satisfy the proximity threshold.
 37. Theapparatus according to claim 35, wherein the explicit locations data ofthe explicit locations database includes location data corresponding toone or more of the billing address, the shipping address, and/or thesocial media of the user profile associated with the location sourcedevice.
 38. The apparatus according to claim 35, wherein the implicitlocations database comprises implicit locations data gathered via one ormore previous requests for a renderable data object by the locationsource device.
 39. The apparatus according to claim 35, wherein theimplicit locations data and the explicit locations data are grouped viaa clustered method.
 40. The apparatus according to claim 39, wherein theimplicit locations data is further grouped via a modified k-meansclustering method, wherein the location data associated with requestsfor a renderable data object by the location source device having alower time stamp are ranked higher relative other implicit locationsdata.